//------------------------------------------------------------------------------
// <copyright file="Utilities.h" company="Microsoft">
// 	 
//	 Copyright 2013 Microsoft Corporation 
// 	 
//	Licensed under the Apache License, Version 2.0 (the "License"); 
//	you may not use this file except in compliance with the License.
//	You may obtain a copy of the License at
// 	 
//		 http://www.apache.org/licenses/LICENSE-2.0 
// 	 
//	Unless required by applicable law or agreed to in writing, software 
//	distributed under the License is distributed on an "AS IS" BASIS,
//	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
//	See the License for the specific language governing permissions and 
//	limitations under the License. 
// 	 
// </copyright>
//------------------------------------------------------------------------------
// Types of windowing functions
enum FFTWindowFunction
{
    RECTANGULAR,
    HANN, 
    HAMMING,
    NUTTALL,
    BLACKMANHARRIS,
    BLACKMANNUTTALL

};

/// <summary>
/// Creates a "Window" buffer which is multiplied by a time domain signal to
/// get cleaner frequency domain results
/// </summary>
/// <param name="window">pointer to the buffer to initialize</param>
/// <param name="count">number of elements in the buffer</param>
/// <param name="type">type of window to create</param>
void InitializeFFTWindow(float * window, UINT count, FFTWindowFunction type);

struct ListBoxEntry
{
    int index;
    int string;
    int value;
    bool fDefault;
};

/// <summary>
/// Initializes a dropdown w/ a set of strings
/// </summary>
/// <param name="hInstance">Handle to the application instance</param>
/// <param name="hwndControl">HWND of the control</param>
/// <param name="pEntries">Pointer to an array of ListBoxEntries</param>
/// <param name="cEntries">Number of entries</param>
void LoadDropDown(HINSTANCE hInstance, HWND hwndControl, ListBoxEntry * pEntries, UINT cEntries);

